package com.example.demo.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


//  实现一个最简单的登录状态拦截器

@Configuration
public class LoginIntercept implements HandlerInterceptor {

//    true 表示拦截通过 可以访问后面接口
//    false 表示拦截未通过 结果直接返回给前端 不可以访问后面端口
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        // 通过请求对象获取 会话对象 一定要设为false
        // 如果
        HttpSession session = request.getSession(false);

        // 获取到会话对象进行判断
        if (session != null && session.getAttribute("userinfo") != null) {
            // 表示已经登录
            // 我们返回true
            // 但我们设置统一返回格式 那么 返回的就是我们设定的格式
            return true;
        }
        // 未通过 登录失败 我们返回登录界面
//        response.sendRedirect("/login.html");
        // 我们返回false
        // 但我们设置统一返回格式 那么 返回的就是我们设定的格式
        return false;
    }

}
